package com.ruoyi.teaching.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

import java.util.Map;

/**
 * 班级对象 ya_class
 *
 * @author ruoyi
 * @date 2025-09-01
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class YaClass extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    @TableId(value = "id")
    @Excel(name = "ID")
    private Long id;

    /** 班级名字 */
    @Excel(name = "班级名字")
    @TableField("class_name")
    private String className;

    /** 备注信息 */
    @Excel(name = "备注信息")
    @TableField("remarks")
    private String remarks;

    /** 开班日期 */
    @Excel(name = "开班日期")
    @TableField("begin_date")
    private String beginDate;

    /** 休息日 */
    @Excel(name = "休息日")
    @TableField("rest_day")
    private Integer restDay;

    /** 自习日 */
    @Excel(name = "自习日")
    @TableField("self_study_day")
    private Integer selfStudyDay;

    /** 毕业年份 */
    @Excel(name = "毕业年份")
    @TableField("graduation_year")
    private String graduationYear;

    /** 专业 */
    @Excel(name = "专业")
    @TableField("major")
    private String major;

    /** 班级类型(培训,实训) */
    @Excel(name = "班级类型(培训,实训)")
    @TableField("type")
    private String type;

    /** 状态 1-未开班  2-已开班 3-已结班 */
    @TableField("status")
    private Integer status;

    @JsonIgnore
    @TableField(exist = false)
    private String searchValue;

    /** 备注 */
    @TableField(exist = false)
    private String remark;

    /** 请求参数 */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    @TableField(exist = false)
    private Map<String, Object> params;
}
